if (domain->interface)
munmap(domain->interface, getpagesize());
+ fire_watches(NULL, "@releaseDomain", false);
+
return 0;
}
continue;
}
talloc_free(domain->conn);
- notify = 1;
+ notify = 0; /* destroy_domain() fires the watch */
}
if (notify)
struct domain *domain;
int rc;
-
domain = talloc(context, struct domain);
domain->port = 0;
domain->shutdown = 0;
/* Now domain belongs to its connection. */
talloc_steal(domain->conn, domain);
- fire_watches(conn, "@introduceDomain", false);
+ fire_watches(NULL, "@introduceDomain", false);
} else if ((domain->mfn == mfn) && (domain->conn != conn)) {
/* Use XS_INTRODUCE for recreating the xenbus event-channel. */
if (domain->port)
talloc_free(domain->conn);
- fire_watches(conn, "@releaseDomain", false);
-
send_ack(conn, XS_RELEASE);
}